package com.myqf.d8_反射.reflect;


/**
 * 作者：黎杭
 * 日期：2020/2/19
 */
public class 可变参数 {
    public static void main(String[] args) {
        method1();// 不传就是0个
        method1("张三");// 传1个
        method1("张三", "李四");// 传2个
        method1("张三", "李四", "王五");// 传3个 这种操作会非常的灵活
        method2(30, "梅西", "C罗", "罗纳尔多");
    }

    // 案例:定义一个可变参数
    public static void method1(String... names) {
        // names就是一个数组！
        for (String s : names) {
            System.err.println(s);
        }
    }
    // 如果此时不把可变参数放到参数列表的最后,就会报错,可变参数必须在最后
    // 以此推出 方法可变参数最多只能有一个，要么没有！
    public static void method2(Integer age, String... names) {
        // names就是一个数组！
        for (String s : names) {
            System.err.println("年龄：" + age + ",姓名" + s);
        }
    }

    // 如果此时不把可变参数放到参数列表的最后,就会报错,可变参数必须在最后
    // 以此推出 方法可变参数最多只能有一个，要么没有！
    // 如果我这个时候让可变参数是Object，那么也就意味着能够接收所有的参数类型
    public static void method3(Integer age, Object... names) {
        // names就是一个数组！
        for (Object s : names) {
            System.err.println("年龄：" + age + ",姓名" + s);
        }
    }
}
